<template>
  <div id="app">
    <h1>根组件</h1>
    <p>{{ c }}</p>
    <span>库存总数:</span>
    <input type="number" v-model.number="count" />
    <Add />
    <Sub />
  </div>
</template>

<script>
import { mapState } from "vuex";
import Add from "@/components/Add";
import Sub from "@/components/Sub";
export default {
  components: {
    Add,
    Sub,
  },
  computed: {
    // 映射可以传数组 或 对象
    // 数组：不改名，原来store中叫什么名字，映射到组件还是什么名字
    // 对象：改名，属性名是留在当前组件的名字，属性值是需要映射的store中名字

    // ...mapState(["num"]),
    ...mapState({ c: "num" }),
    count: {
      get() {
        return this.$store.state.num;
      },
      set(newVal) {
        this.$store.commit("setNum", newVal);
      },
    },
  },
};
</script>

<style>
#app {
  width: 300px;
  margin: 20px auto;
  border: 1px solid #ccc;
  padding: 4px;
}
</style>
